home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 744 / fo2 / sources_fo2 / gadgets.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  5KB  |  197 lines

  1. #include "defs.h"
  2.  
  3. Prototype BYTE HandleIDCMP2(struct Window *win);
  4. Prototype OffGadgets(struct Window *win);
  5. Prototype DisGadget(struct Gadget *gadget);
  6. Prototype UnDisGadget(struct Gadget *gadget);
  7. Prototype OnGadgets(struct Window *win);
  8. Prototype UnSelGadget(struct Window *win,struct Gadget *gadget);
  9. Prototype SelGadget(struct Window *win,struct Gadget *gadget);
  10. Prototype SelGadgetnoRem(struct Gadget *gadget,BOOL    flag);
  11.  
  12. extern struct Gadget Gadget1;
  13. extern struct Gadget Gadget2;
  14. extern struct Gadget Gadget3;
  15. extern struct Gadget Gadget4;
  16. extern struct Gadget Gadget5;
  17. extern struct Gadget Gadget6;
  18. extern struct Gadget Gadget7;
  19. extern struct Gadget Gadget8;
  20. extern struct Gadget Gadget9;
  21. extern struct Gadget Gadget10;
  22. extern struct Gadget Gadget11;
  23. extern struct Gadget Gadget12;
  24. extern struct Gadget Gadget13;
  25. extern struct Gadget Gadget14;
  26. extern struct Gadget Gadget15;
  27. extern struct Gadget Gadget16;
  28. extern struct Gadget Gadget17;
  29. extern struct Gadget Gadget18;
  30.  
  31.  
  32. BYTE HandleIDCMP2(win)
  33. struct Window *win;
  34. {
  35. UBYTE flag = 0;
  36. struct IntuiMessage *message = NULL;
  37. USHORT code;
  38. ULONG  class;
  39. struct Gadget *address;
  40.  
  41.     /* Examine pending messages */
  42.     while( message = (struct IntuiMessage *)GetMsg(win->UserPort) ) {
  43.  
  44.         class = message->Class;+
  45.         code = message->Code;
  46.         address = message->IAddress;
  47.  
  48.         /* When we're through with a message, reply */
  49.         ReplyMsg( (struct Message *)message);
  50.  
  51.         /* See what events occurred */
  52.         switch( class ) {
  53.         
  54.             case CLOSEWINDOW:            
  55.                 return(1);
  56.             case GADGETDOWN:
  57.             switch ( address->GadgetID)
  58.                 {
  59.                     case 12 : return(2);
  60.                 } break;
  61.             case DISKINSERTED :
  62.                 return(3);
  63.             case DISKREMOVED :
  64.                 return(4);
  65.             default : return(0);
  66.         }
  67.     }
  68.     return(0);
  69. }
  70.  
  71. OffGadgets(win)
  72. struct Window *win;
  73. {
  74. struct Gadget *gadg;
  75. BYTE n;
  76.  
  77.     RemoveGList(win,&Gadget1,18);
  78.  
  79.     DisGadget(&Gadget1);
  80.     DisGadget(&Gadget2);
  81.     DisGadget(&Gadget3);
  82.     DisGadget(&Gadget4);
  83.     DisGadget(&Gadget5);
  84.     DisGadget(&Gadget6);
  85.     DisGadget(&Gadget7);
  86.     DisGadget(&Gadget8);
  87.     DisGadget(&Gadget9);
  88.     DisGadget(&Gadget10);
  89.     DisGadget(&Gadget11);
  90.     DisGadget(&Gadget12);
  91. /*    DisGadget(&Gadget13);*/
  92.     DisGadget(&Gadget14);
  93.     DisGadget(&Gadget15);
  94.     DisGadget(&Gadget16);
  95.  
  96.     AddGList(win,&Gadget1,0,18,0);
  97.     RefreshGList(&Gadget1,win,0,18);
  98.     RefreshGList(&Gadget14,win,0,1);
  99.     RefreshGList(&Gadget16,win,0,1);
  100.  
  101. }
  102. DisGadget(gadget)
  103. struct Gadget *gadget;
  104. {
  105.     gadget->Flags |= GADGDISABLED;
  106.     gadget->Flags &= ~SELECTED;
  107. }
  108. UnDisGadget(gadget)
  109. struct Gadget *gadget;
  110. {
  111.     gadget->Flags &= ~GADGDISABLED;
  112.     gadget->Flags &= ~SELECTED;
  113. }
  114.  
  115. OnGadgets(win)
  116. struct Window *win;
  117. {
  118. struct Gadget *gadg;
  119. BYTE n;
  120.  
  121.     RemoveGList(win,&Gadget1,16);
  122.  
  123.     if (DF0) { UnDisGadget(&Gadget1); UnDisGadget(&Gadget5); }
  124.     if (DF1) { UnDisGadget(&Gadget2); UnDisGadget(&Gadget6); }
  125.     if (DF2) { UnDisGadget(&Gadget3); UnDisGadget(&Gadget7); }
  126.     if (DF3) { UnDisGadget(&Gadget4); UnDisGadget(&Gadget8); }
  127.     UnDisGadget(&Gadget9);
  128.     UnDisGadget(&Gadget10);
  129.     UnDisGadget(&Gadget11);
  130.     UnDisGadget(&Gadget12);
  131.     UnDisGadget(&Gadget14);
  132.     UnDisGadget(&Gadget15);
  133.     UnDisGadget(&Gadget16);
  134.     UnDisGadget(&Gadget17);
  135.     UnDisGadget(&Gadget18);
  136.  
  137.     switch (sourceDrive)
  138.     {
  139.         case 0: SelGadgetnoRem(&Gadget1,1); break;
  140.         case 1: SelGadgetnoRem(&Gadget2,1); break;
  141.         case 2: SelGadgetnoRem(&Gadget3,1); break;
  142.         case 3: SelGadgetnoRem(&Gadget4,1); break;
  143.     }
  144.     switch (destDrive)
  145.     {
  146.         case 0: SelGadgetnoRem(&Gadget5,1); break;
  147.         case 1: SelGadgetnoRem(&Gadget6,1); break;
  148.         case 2: SelGadgetnoRem(&Gadget7,1); break;
  149.         case 3: SelGadgetnoRem(&Gadget8,1); break;
  150.     }
  151.     if (FLnog) SelGadgetnoRem(&Gadget12,1);
  152.     if (!FORMAT) SelGadgetnoRem(&Gadget11,1);
  153.     if (CHECK) SelGadgetnoRem(&Gadget15,1);
  154.     if (AUTO) SelGadgetnoRem(&Gadget14,1);
  155.     if (MULTI) SelGadgetnoRem(&Gadget16,1);
  156.     if (CLI) {SelGadgetnoRem(&Gadget10,1); SelGadgetnoRem(&Gadget9,0);}
  157.     else {SelGadgetnoRem(&Gadget10,0); SelGadgetnoRem(&Gadget9,1);}
  158.  
  159.     AddGList(win,&Gadget1,0,16,0);
  160.     RefreshGList(&Gadget1,win,0,16);
  161.     RefreshGList(&Gadget12,win,0,1);
  162.     RefreshGList(&Gadget14,win,0,1);
  163.     RefreshGList(&Gadget16,win,0,1);
  164. }
  165.  
  166. UnSelGadget(win,gadget)
  167. struct Window *win;
  168. struct Gadget *gadget;
  169. {
  170.     if (gadget->Flags & SELECTED)
  171.     {
  172.         RemoveGList(win,gadget,1);
  173.         gadget->Flags &= ~SELECTED;
  174.         AddGList(win,gadget,gadget->GadgetID,1,0);
  175.         RefreshGList(gadget,win,0,1);
  176.     }
  177. }
  178. SelGadget(win,gadget)
  179. struct Window *win;
  180. struct Gadget *gadget;
  181. {
  182.     if (!(gadget->Flags & SELECTED))
  183.     {
  184.         RemoveGList(win,gadget,1);
  185.         gadget->Flags |= SELECTED;
  186.         AddGList(win,gadget,gadget->GadgetID,1,0);
  187.         RefreshGList(gadget,win,0,1);
  188.     }
  189. }
  190. SelGadgetnoRem(gadget,flag)
  191. struct Gadget *gadget;
  192. BOOL    flag;
  193. {
  194.     if (flag) gadget->Flags |= SELECTED;
  195.     else gadget->Flags &= ~SELECTED;
  196. }
  197.